Implementation of Chatbot using NLP.ipynb
No Headings
The table of contents shows headings in notebooks and supported files.
- File
- Edit
- View
- Run
- Kernel
- Settings
- Help
Kernel status: Idle Executed 2 cellsElapsed time: 194 seconds
- 1
- 2
- 3
- 4
- 5
- 6
[1]:
pip install nltk scikit-learn streamlit
Requirement already satisfied: nltk in c:\users\sweety\anaconda3\lib\site-packages (3.9.1) Requirement already satisfied: scikit-learn in c:\users\sweety\anaconda3\lib\site-packages (1.5.1) Requirement already satisfied: streamlit in c:\users\sweety\anaconda3\lib\site-packages (1.37.1) Requirement already satisfied: click in c:\users\sweety\anaconda3\lib\site-packages (from nltk) (8.1.7) Requirement already satisfied: joblib in c:\users\sweety\anaconda3\lib\site-packages (from nltk) (1.4.2) Requirement already satisfied: regex>=2021.8.3 in c:\users\sweety\anaconda3\lib\site-packages (from nltk) (2024.9.11) Requirement already satisfied: tqdm in c:\users\sweety\anaconda3\lib\site-packages (from nltk) (4.66.5) Requirement already satisfied: numpy>=1.19.5 in c:\users\sweety\anaconda3\lib\site-packages (from scikit-learn) (1.26.4) Requirement already satisfied: scipy>=1.6.0 in c:\users\sweety\anaconda3\lib\site-packages (from scikit-learn) (1.13.1) Requirement already satisfied: threadpoolctl>=3.1.0 in c:\users\sweety\anaconda3\lib\site-packages (from scikit-learn) (3.5.0) Requirement already satisfied: altair<6,>=4.0 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (5.0.1) Requirement already satisfied: blinker<2,>=1.0.0 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (1.6.2) Requirement already satisfied: cachetools<6,>=4.0 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (5.3.3) Requirement already satisfied: packaging<25,>=20 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (24.1) Requirement already satisfied: pandas<3,>=1.3.0 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (2.2.2) Requirement already satisfied: pillow<11,>=7.1.0 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (10.4.0) Requirement already satisfied: protobuf<6,>=3.20 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (4.25.3) Requirement already satisfied: pyarrow>=7.0 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (16.1.0) Requirement already satisfied: requests<3,>=2.27 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (2.32.3) Requirement already satisfied: rich<14,>=10.14.0 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (13.7.1) Requirement already satisfied: tenacity<9,>=8.1.0 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (8.2.3) Requirement already satisfied: toml<2,>=0.10.1 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (0.10.2) Requirement already satisfied: typing-extensions<5,>=4.3.0 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (4.11.0) Requirement already satisfied: gitpython!=3.1.19,<4,>=3.0.7 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (3.1.43) Requirement already satisfied: pydeck<1,>=0.8.0b4 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (0.8.0) Requirement already satisfied: tornado<7,>=6.0.3 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (6.4.1) Requirement already satisfied: watchdog<5,>=2.1.5 in c:\users\sweety\anaconda3\lib\site-packages (from streamlit) (4.0.1) Requirement already satisfied: jinja2 in c:\users\sweety\anaconda3\lib\site-packages (from altair<6,>=4.0->streamlit) (3.1.4) Requirement already satisfied: jsonschema>=3.0 in c:\users\sweety\anaconda3\lib\site-packages (from altair<6,>=4.0->streamlit) (4.23.0) Requirement already satisfied: toolz in c:\users\sweety\anaconda3\lib\site-packages (from altair<6,>=4.0->streamlit) (0.12.0) Requirement already satisfied: colorama in c:\users\sweety\anaconda3\lib\site-packages (from click->nltk) (0.4.6) Requirement already satisfied: gitdb<5,>=4.0.1 in c:\users\sweety\anaconda3\lib\site-packages (from gitpython!=3.1.19,<4,>=3.0.7->streamlit) (4.0.7) Requirement already satisfied: python-dateutil>=2.8.2 in c:\users\sweety\anaconda3\lib\site-packages (from pandas<3,>=1.3.0->streamlit) (2.9.0.post0) Requirement already satisfied: pytz>=2020.1 in c:\users\sweety\anaconda3\lib\site-packages (from pandas<3,>=1.3.0->streamlit) (2024.1) Requirement already satisfied: tzdata>=2022.7 in c:\users\sweety\anaconda3\lib\site-packages (from pandas<3,>=1.3.0->streamlit) (2023.3) Requirement already satisfied: charset-normalizer<4,>=2 in c:\users\sweety\anaconda3\lib\site-packages (from requests<3,>=2.27->streamlit) (3.3.2) Requirement already satisfied: idna<4,>=2.5 in c:\users\sweety\anaconda3\lib\site-packages (from requests<3,>=2.27->streamlit) (3.7) Requirement already satisfied: urllib3<3,>=1.21.1 in c:\users\sweety\anaconda3\lib\site-packages (from requests<3,>=2.27->streamlit) (2.2.3) Requirement already satisfied: certifi>=2017.4.17 in c:\users\sweety\anaconda3\lib\site-packages (from requests<3,>=2.27->streamlit) (2024.12.14) Requirement already satisfied: markdown-it-py>=2.2.0 in c:\users\sweety\anaconda3\lib\site-packages (from rich<14,>=10.14.0->streamlit) (2.2.0) Requirement already satisfied: pygments<3.0.0,>=2.13.0 in c:\users\sweety\anaconda3\lib\site-packages (from rich<14,>=10.14.0->streamlit) (2.15.1) Requirement already satisfied: smmap<5,>=3.0.1 in c:\users\sweety\anaconda3\lib\site-packages (from gitdb<5,>=4.0.1->gitpython!=3.1.19,<4,>=3.0.7->streamlit) (4.0.0) Requirement already satisfied: MarkupSafe>=2.0 in c:\users\sweety\anaconda3\lib\site-packages (from jinja2->altair<6,>=4.0->streamlit) (2.1.3) Requirement already satisfied: attrs>=22.2.0 in c:\users\sweety\anaconda3\lib\site-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit) (23.1.0) Requirement already satisfied: jsonschema-specifications>=2023.03.6 in c:\users\sweety\anaconda3\lib\site-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit) (2023.7.1) Requirement already satisfied: referencing>=0.28.4 in c:\users\sweety\anaconda3\lib\site-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit) (0.30.2) Requirement already satisfied: rpds-py>=0.7.1 in c:\users\sweety\anaconda3\lib\site-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit) (0.10.6) Requirement already satisfied: mdurl~=0.1 in c:\users\sweety\anaconda3\lib\site-packages (from markdown-it-py>=2.2.0->rich<14,>=10.14.0->streamlit) (0.1.0) Requirement already satisfied: six>=1.5 in c:\users\sweety\anaconda3\lib\site-packages (from python-dateutil>=2.8.2->pandas<3,>=1.3.0->streamlit) (1.16.0) Note: you may need to restart the kernel to use updated packages.
[3]:
import nltk
import random
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression
from nltk.stem import WordNetLemmatizer
[nltk_data] Downloading package punkt_tab to [nltk_data] C:\Users\Sweety\AppData\Roaming\nltk_data... [nltk_data] Package punkt_tab is already up-to-date! [nltk_data] Downloading package wordnet to [nltk_data] C:\Users\Sweety\AppData\Roaming\nltk_data... [nltk_data] Package wordnet is already up-to-date!
[22]:
all_patterns = []
all_labels = []
responses = {}
for intent in intents:
for pattern in intent['patterns']:
all_patterns.append(pattern)
all_labels.append(intent['tag'])
responses[intent['tag']] = intent['responses']
def clean_up_sentence(sentence):
sentence_words = nltk.word_tokenize(sentence)
sentence_words = [lemmatizer.lemmatize(w.lower()) for w in sentence_words]
return sentence_words
vectorizer = TfidfVectorizer(tokenizer=clean_up_sentence)
X = vectorizer.fit_transform(all_patterns)
classifier = LogisticRegression()
classifier.fit(X, all_labels)
def get_response(user_input):
input_vector = vectorizer.transform([user_input])
predicted_tag = classifier.predict(input_vector)[0]
response = random.choice(responses[predicted_tag])
return response
while True:
user_input = input("You: ")
if user_input.lower() == "quit":
break
response = get_response(user_input)
print(f"Bot: {response}")
C:\Users\Sweety\anaconda3\Lib\site-packages\sklearn\feature_extraction\text.py:521: UserWarning: The parameter 'token_pattern' will not be used since 'tokenizer' is not None' warnings.warn(
You: Hi
Bot: Hello
You: whats up?
Bot: Hi there
You: who are you
Bot: I can answer questions and provide assistance
You: what is your purpose
Bot: I am a chatbot
You: Can you help me
Bot: Sure, what do you need help with?
You: How's the weather today
Bot: You can check the weather on a weather app or website.
You: How can I make a budget
Bot: To create a budget, start by setting financial goals for yourself. Then, track your income and expenses for a few months to get a sense of where your money is going. Next, create a budget by allocating your income towards essential expenses, savings and debt repayment, and discretionary expenses.
You: what is credit score
Bot: You can check your credit score for free on several websites such as Credit Karma and Credit Sesame.
You: who is your developer
Bot: suraj sharma created me
You: please play a song for me
Bot: Yes sure! which song do you loke to play
You: bye
Bot: Goodbye
You: quit
Common Tools
No metadata.
Advanced Tools
No metadata.
Anaconda Assistant
AI-powered coding, insights and debugging in your notebooks.
To enable the following extensions, create an account or sign in.
- Anaconda Assistant4.1.0
- Coming soon!
- Data Catalogs
- Panel Deployments
- Sharing
Already have an account? Sign In
For more information, read our Anaconda Assistant documentation.
![Python [conda env:base] *](./Implementation of Chatbot using NLP_files/logo-64x64.png)